package Package.Network_Programming.UDPSendsData;

import java.io.IOException;
import java.net.*;

public class UDPSendsData {
    public static final void UDPSendsData() throws SocketException, UnknownHostException {
//        UDP发送数据【应用】
//Java中的UDP通信
//UDP协议是一种不可靠的网络协议，它在通信的两端各建立一个Socket对象，但是这两个Socket只是发
//送，接收数据的对象，因此对于基于UDP协议的通信双方而言，没有所谓的客户端和服务器的概念
//Java提供了DatagramSocket类作为基于UDP协议的Socket
        //构造方法
//        方法名 说明
//DatagramSocket()创建数据报套接字并将其绑定到本机地址上的任何可用端口
//DatagramPacket(byte[] buf,int len,InetAddress add,int port)创建数据包,发送长度为len的数据包到指定主机的指定端口
//相关方法
//方法名 说明
//void send(DatagramPacket p) 发送数据报包
//void close() 关闭数据报套接字
//void receive(DatagramPacket p) 从此套接字接受数据报包
//发送数据的步骤
//创建发送端的Socket对象(DatagramSocket)
//创建数据，并把数据打包
//        调用DatagramSocket对象的方法发送数据
//关闭发送端
        DatagramSocket ds = new DatagramSocket();
//        创建数据，并打包
        byte[] bys = "Hello World!!!".getBytes();
        int length = bys.length;
        InetAddress byName = InetAddress.getByName("192.168.8.103");
        int port = 10086;
        DatagramPacket dp = new DatagramPacket(bys, length, byName, port);
//        发送数据
        try {
            ds.send(dp);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
//        关闭发送端
        ds.close();
    }
}
